#ifndef RENDERWINDOW_H_INCLUDED
#define RENDERWINDOW_H_INCLUDED

#include <boost/noncopyable.hpp>
#include <string>

using std::string;

namespace engine {

	namespace core {
			
		//Derive from a RenderTarget class?
		
		class RenderWindow : boost::noncopyable {
			private:
				string m_Name;
				uint m_Width;
				uint m_Height;
				uint m_ColourDepth;
				uint m_Top;
				uint m_Left;
				
				bool m_IsFullscreen; 
				
				
			public:
				RenderWindow();
				virtual ~RenderWindow();
				
				bool create(uint width, uint height, uint left, uint top,
								const string& title, bool fullscreen, 
								uint colourDepth = 0);
				void destroy();
				
				bool isFullscreen() { return m_IsFullscreen; }
				void setTitle(const string& title, const string& icon = "");
				
				void clearBuffers();
				void swapBuffers(bool waitForVSync = false);
				void resize(int w, int h);
		};
	}
}

#endif // RENDERWINDOW_H_INCLUDED
